<?php

/**
 * @author Paweł Napieracz
 * @version 1.0
 */
class Form_Grupy {

    private $form;

    public function __construct() {
        $Config = array(
            // Default fields size
            'size' => 35,
            // Default fields error css
            'css_error' => 'fields_error',
            'template_open' => '<div class="form_row">',
            'template_label' => '<label>|LABEL|</label>',
            'template_field' => '|FIELD|',
            'template_error' => '<BR><font class="error">- |ERROR|</font>',
            'template_close' => '</div>',
            'template_line' => "\n",
            'template_field_one' => '<div class="form_row">|LABEL||FIELD|</div>'
        );
        $form = & new Form_AuriumForm($Config);
        $this->form = $form;
    }

    public function generujGrupe($grupa) {
        $id = array(
            'type' => 'hidden',
            'name' => 'id',
            'value' => isset($grupa['id']) ? $grupa['id'] : null);

        $nazwa = array(
            'label' => 'Nazwa*:',
            'type' => 'text',
            'name' => 'nazwa',
            'value' => htmlspecialchars(isset($_POST['nazwa']) ? $_POST['nazwa'] : $grupa['nazwa']));

        $this->form->SetData(array($nazwa, $id));
        $formularz = $this->form->ShowFields();
        return $formularz;
    }

    /**
     *
     * @param type $uprawienia
     * @param <array> $wszystkieUprawienia kluczem nie jest id, a klucz z tablicy
     * @return <string> 
     */
    public function generujUprawienia($uprawienia, $wszystkieUprawienia) {
        /* Tworze checkboxy */
        foreach ($wszystkieUprawienia as $k => $v) {
            $uprawienie = array(
                'label' => 'Nazwa:',
                'type' => 'checkbox',
                'name' => 'uprawienia['.$k.']',
                'value' => $k,
                'text' => $v,
                'text_clickable' => true,
                'selected' => isset($_POST['uprawienia'][$k]) ? true : (isset($uprawienia[$k]) ? true : false)
            );
            $formularz .= $this->form->OneField($uprawienie);
        }

        return $formularz;
    }

    /**
     *
     * @param <type> $action link do akcji w znaczniku form
     * @return <type> Zwraca otwarcie forma
     */
    public function otworzForma($action) {
        $formularz = '<div class="form">';
        $formularz .= $this->form->OpenForm(array('m' => 'p',
            'action' => $action));
        return $formularz;
    }

    public function zamknijForma() {
        $przyciski = array(
            'type' => 'button',
            'subtype' => array('submit', 'button'),
            'value' => array('Wyślij', 'Anuluj'),
            'extras' => array('', 'onClick="window.location = \'/cms/grupy/\';"'),
            'alone' => true
        );
        $formularz = $this->form->OneField($przyciski);
        $formularz .= $this->form->CloseForm();
        $formularz .= '</div>';
        return $formularz;
    }

}

?>
